﻿CREATE PROCEDURE [ServiceEngine].[AssignEntityToEntityGroup]
 @entityGroupID uniqueidentifier,
 @entityID uniqueidentifier
AS
BEGIN
 DECLARE @ErrorMessage NVARCHAR(4000);
 DECLARE @ErrorSeverity INT;
 DECLARE @ErrorState INT;
 SET NOCOUNT ON;

 BEGIN TRY
  BEGIN TRANSACTION

  DECLARE @ID as uniqueidentifier
  
  SELECT Entities_EntityGroupsID
  FROM ServiceEngine.Entities_EntityGroups
  WHERE EntityGroupID = @EntityGroupID
  AND  EntityID = @entityID
  
  IF (@@ROWCOUNT = 0) 
  BEGIN
   SET @ID = newid();

   INSERT ServiceEngine.Entities_EntityGroups (Entities_EntityGroupsID, EntityGroupID, EntityID)
   VALUES (@ID, @entityGroupID, @entityID)
  END

  COMMIT TRANSACTION
 END TRY
 BEGIN CATCH
  SELECT 
   @ErrorMessage = ERROR_MESSAGE(),
   @ErrorSeverity = ERROR_SEVERITY(),
   @ErrorState = ERROR_STATE();

  IF XACT_STATE() <> 0 ROLLBACK TRANSACTION;

  RAISERROR (@ErrorMessage, 
       @ErrorSeverity,
       1);
 END CATCH

END
